home *** CD-ROM | disk | FTP | other *** search
- From: allen@viewlogic.com (Dave Allen)
- Newsgroups: comp.sources.misc
- Subject: REPOST: v18i001: planet - planet generation simulator, Part01/04
- Message-ID: <1991Apr9.041648.7975@sparky.IMD.Sterling.COM>
- Date: 9 Apr 91 04:16:48 GMT
- Approved: kent@sparky.imd.sterling.com
- X-Checksum-Snefru: e4b9729c a9ba8dca 132d9842 941c865b
-
- Submitted-by: Dave Allen <allen@viewlogic.com>
- Posting-number: Volume 18, Issue 1
- Archive-name: planet/part01
- Supersedes: tec: Volume 10, Issue 77-78
-
- [After I took the time to repackage this up due to a problem creating the
- directories during unsharing, I went ahead and posted the original version
- and removed my repackaged version... Lets try it again... -Kent+]
-
- This is version 1 of a scientific planet generator (as opposed to a
- die-rolling planet generator). It is written in C and runs in graphics
- mode under Xwindows, or in text-only mode under UN*X. There are three
- programs:
-
- - tec: a continental drift simulator
- - clim: a climate generator
- - globe: computes and displays a rotating planet
-
- Dave
- ----
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then feed it
- # into a shell via "sh file" or similar. To overwrite existing files,
- # type "sh file -c".
- # The tool that generated this appeared in the comp.sources.unix newsgroup;
- # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
- # Contents: . ./doc ./example ./example/globe.in ./src ./src/Makefile
- # ./src/rain.c
- # Wrapped by kent@sparky on Mon Apr 8 22:39:14 1991
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- echo If this archive is complete, you will see the following message:
- echo ' "shar: End of archive 1 (of 4)."'
- if test ! -d './doc' ; then
- echo shar: Creating directory \"'./doc'\"
- mkdir './doc'
- fi
- if test ! -d './example' ; then
- echo shar: Creating directory \"'./example'\"
- mkdir './example'
- fi
- if test -f './example/globe.in' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'./example/globe.in'\"
- else
- echo shar: Extracting \"'./example/globe.in'\" \(40677 characters\)
- sed "s/^X//" >'./example/globe.in' <<'END_OF_FILE'
- X(LAND (
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2
- X 2 2 2 2 2 2 2 2 2 2 2 2 1 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 1 2 3 3 3 3 3 3 3 3
- X 3 3 3 3 3 3 3 3 3 3 3 3 3 2 1
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 1 4 4 3 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
- X 3 18 22 22 22 22 22 22 22 22 22 22 22 22 22
- X 22 22 22 22 23 24 26 25 23 6 3 1 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 1 5 10 31 26
- X 8 4 3 3 3 3 3 3 2 1 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 2 19 24 27 29 29
- X 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29
- X 29 32 31 31 25 24 1 0 0 4 5 5 1 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 5 30 35 38 35 30 25 23 23 24
- X 24 24 20 17 2 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 3 23 28 31 32 32 32 32 32 32 32
- X 32 32 32 32 32 32 32 32 34 34 34 34 35 36 29
- X 9 1 0 4 13 29 35 10 5 1 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 10 38 48 45 40 32 32 31 31 27 26 27 24 21 3
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
- X 25 29 33 34 35 35 35 35 35 35 35 35 35 35 35
- X 35 35 34 34 35 36 37 39 39 30 9 0 0 8 30
- X 40 42 35 35 10 5 1 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 2 17 43 51 49 43
- X 35 33 32 32 33 34 33 29 23 18 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 3 27 31 35 37 37
- X 37 37 37 37 37 37 37 37 37 37 37 37 36 36 36
- X 36 37 38 36 27 6 0 0 11 33 47 48 45 44 37
- X 35 10 5 1 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 6 37 48 57 47 43 37 37 37 38 34
- X 33 32 31 26 20 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 3 26 32 35 38 38 38 38 38 38 38
- X 38 38 38 38 38 38 38 39 38 38 38 38 37 31 12
- X 3 0 3 13 36 44 43 48 48 47 45 37 32 7 2
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 2 13
- X 43 53 55 47 44 39 38 36 37 38 39 36 32 26 22
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
- X 25 33 35 40 40 40 40 40 40 40 40 40 40 40 40
- X 40 40 39 40 40 39 39 38 30 9 0 0 6 28 39
- X 43 44 46 47 49 51 52 44 31 7 1 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 6 34 48 54 51 45 43
- X 39 39 40 40 40 40 35 33 25 22 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 3 27 33 35 39 39
- X 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39
- X 40 40 40 31 9 0 0 9 33 42 44 45 43 46 47
- X 52 56 53 43 32 5 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 2 13 40 49 55 49 45 41 39 38 38 37 37
- X 36 35 33 27 22 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 3 26 31 34 37 37 37 37 37 37 37
- X 37 37 37 37 37 37 37 37 37 38 39 39 39 32 9
- X 0 0 10 34 44 42 43 43 44 45 51 57 57 52 36
- X 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 1 5 11 36 42
- X 49 48 42 41 39 37 36 37 36 37 37 35 30 26 20
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
- X 24 29 32 34 34 34 34 34 34 34 34 34 34 34 34
- X 34 35 36 37 38 38 38 40 33 9 0 0 11 31 43
- X 44 44 43 43 44 52 58 59 55 37 10 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 1 5 10 32 32 40 44 43 41 41 38 37
- X 35 35 34 33 32 33 31 28 24 3 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 3 23 28 29 31 31
- X 31 31 31 31 31 31 31 31 32 33 34 35 35 35 35
- X 37 39 40 34 9 0 0 12 34 46 46 45 43 43 45
- X 52 56 59 49 32 6 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 2 7 32
- X 34 38 44 41 41 40 39 37 36 35 34 33 32 33 34
- X 32 31 27 23 3 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 3 21 26 29 30 31 31 31 31 31 31
- X 31 31 32 33 31 33 33 33 33 36 38 40 40 33 9
- X 0 0 12 32 44 44 43 42 42 47 53 60 57 42 13
- X 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 2 9 32 42 44 45 41 38 38
- X 38 37 35 34 33 32 31 31 29 29 28 28 25 21 3
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
- X 20 23 28 28 28 28 28 28 28 28 29 30 31 31 31
- X 31 32 34 35 36 38 40 40 33 9 0 0 11 31 42
- X 40 39 38 38 47 54 62 54 38 8 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 6 30 40 47 46 44 40 38 36 35 35 34 32 31
- X 30 30 31 30 30 28 27 24 19 3 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 3 20 22 25 25 25
- X 25 25 25 26 27 29 30 31 31 32 33 34 35 36 37
- X 39 39 41 31 9 0 0 10 33 40 41 40 37 39 46
- X 52 60 54 38 8 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 11 39 48 53
- X 46 43 39 37 36 36 35 34 32 31 31 28 28 27 27
- X 27 26 24 19 3 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 3 21 24 28 30 31 31 31 31 31 32
- X 32 32 32 32 33 34 36 37 38 39 39 39 39 29 9
- X 0 0 8 28 35 36 35 34 34 41 53 58 58 42 13
- X 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 14 40 52 51 46 42 39 38 37
- X 38 35 33 33 32 30 30 29 27 26 26 26 22 19 3
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
- X 22 26 29 29 30 31 31 31 31 31 31 32 33 34 35
- X 35 37 39 38 37 38 37 37 28 9 0 0 7 29 35
- X 33 33 33 34 38 45 52 58 49 33 6 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 12 35 50 49 47 42 40 39 40 39 37 35 34 33
- X 32 31 32 31 31 31 28 24 21 3 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 3 23 26 31 34 35
- X 36 36 37 37 37 37 36 35 35 36 37 38 37 37 36
- X 37 36 35 26 8 0 0 6 27 32 31 30 31 31 35
- X 41 54 56 55 41 12 1 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 7 30 41 45
- X 48 43 43 43 41 39 39 38 36 35 33 32 32 31 31
- X 30 28 27 22 3 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 3 23 27 31 33 34 35 35 36 36 36
- X 36 36 36 37 37 37 36 36 34 35 35 34 33 27 7
- X 0 0 6 24 30 29 28 30 30 33 37 48 55 61 46
- X 33 3 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 2 7 31 36 40 47 47 47 45
- X 43 40 38 38 36 36 37 38 37 37 37 34 30 26 21
- X 1 0 0 0 0 0 0 0 0 0 0 0 0 0 3
- X 22 28 31 36 38 38 39 39 39 39 38 38 39 38 37
- X 35 35 34 34 34 33 32 31 25 6 0 0 6 23 28
- X 29 30 31 30 32 35 44 53 58 51 37 7 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 1 5 12 33 40 46 51 47 45 43 40 40 38
- X 37 36 36 36 36 36 35 33 28 21 2 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 3 21 27 32 36 39
- X 38 40 40 40 41 41 41 39 37 35 34 33 32 32 32
- X 31 30 30 25 6 0 0 6 24 31 31 29 29 28 31
- X 34 38 51 59 57 41 12 1 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2
- X 9 33 43 50 52 48 45 42 40 40 40 39 39 40 40
- X 41 39 35 31 24 4 1 0 0 0 0 0 0 0 0
- X 0 0 0 0 2 20 25 32 35 39 40 39 39 40 40
- X 41 40 38 36 34 32 32 31 29 30 31 31 30 25 4
- X 0 0 6 25 30 29 28 27 27 28 31 37 46 53 59
- X 49 37 5 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 2 9 33 42 48
- X 50 47 45 43 41 41 40 40 41 41 40 38 38 33 25
- X 19 2 0 0 0 0 0 0 0 0 0 0 0 0 3
- X 23 28 31 35 38 38 38 37 36 37 36 37 38 35 34
- X 32 30 29 30 30 32 32 27 8 2 0 2 8 25 28
- X 27 26 25 25 26 29 32 40 51 59 54 41 11 1 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 2 9 33 43 49 47 45 44 43
- X 40 39 40 41 41 41 41 38 33 26 21 3 0 0 0
- X 0 0 0 0 0 0 0 0 0 2 18 26 29 33 35
- X 36 37 38 38 38 38 37 36 35 33 33 32 32 31 31
- X 31 30 23 6 0 0 3 20 26 27 26 24 23 23 26
- X 27 34 37 48 56 58 50 35 5 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 2 7 33 38 45 50 45 44 42 41 40 39 39
- X 38 39 37 33 25 20 2 0 0 0 0 0 0 0 0
- X 0 0 0 0 2 4 25 28 31 33 34 35 36 35 34
- X 33 32 31 31 32 32 32 31 31 29 29 28 22 5 0
- X 0 4 23 25 25 24 23 22 22 25 26 31 34 42 53
- X 59 55 37 9 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 1 5
- X 14 34 41 45 47 44 43 41 41 38 37 37 34 31 26
- X 22 2 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 1 21 23 29 31 32 34 34 34 35 34 33 32 31 31
- X 30 30 29 28 28 27 26 23 4 0 0 3 22 24 23
- X 22 22 22 22 24 27 29 34 40 51 56 57 41 12 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 4 11 32 40 45
- X 47 46 44 43 39 39 35 33 30 25 21 2 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 3 23 26 29
- X 30 31 32 31 30 30 30 30 30 29 29 28 27 27 26
- X 25 25 21 3 0 0 3 20 22 22 22 22 22 22 24
- X 28 29 33 39 52 54 52 36 9 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
- X 0 0 0 0 0 0 2 7 33 36 42 46 48 44 41
- X 40 35 35 29 26 21 3 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 2 18 24 26 29 29 30 31 31
- X 30 29 29 28 27 26 26 26 25 24 23 23 19 3 0
- X 0 3 19 22 22 22 22 22 22 24 28 28 37 46 51
- X 53 44 32 5 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 1 5 20 23 3 0 0 0 0
- X 0 0 1 5 12 34 41 46 49 43 40 36 32 29 27
- X 20 3 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 1 3 21 24 26 28 28 27 26 25 26 27 27 27
- X 26 25 24 23 22 22 22 19 3 0 0 3 19 22 22
- X 22 22 22 22 23 28 29 38 46 53 49 35 7 1 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 1 3 23 22 19 3 0 0 0 0 0 0 0 0 2
- X 9 33 42 46 46 43 38 34 31 29 21 4 1 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 2 22 22
- X 25 25 25 25 27 26 25 25 25 25 24 23 22 22 22
- X 22 21 18 2 0 0 3 19 22 22 22 22 22 22 24
- X 28 33 44 53 59 46 17 3 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 1 4 23 26 26 7
- X 3 0 0 0 0 0 0 0 0 0 2 9 32 41 44
- X 43 38 36 31 26 23 17 2 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 1 17 20 23 22 22 22 23
- X 23 23 22 22 22 22 22 22 22 22 22 20 4 1 0
- X 1 4 20 22 22 22 22 22 22 24 25 31 40 51 56
- X 47 36 5 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 2 25 30 29 7 2 0 0 0 0 0
- X 0 0 0 0 0 0 2 7 32 34 39 41 36 33 28
- X 24 18 3 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 1 19 19 22 22 22 22 22 22 22 22 22 22
- X 22 22 22 22 22 22 19 3 0 0 2 18 21 22 22
- X 22 22 22 22 24 25 31 38 48 53 54 41 14 4 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4
- X 33 36 38 26 5 2 1 0 0 0 0 0 0 0 0
- X 0 0 1 5 11 29 32 33 33 27 23 20 5 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 18 19
- X 21 21 21 22 22 22 22 22 22 22 22 22 22 22 22
- X 22 19 3 0 0 3 19 22 22 22 22 22 22 22 23
- X 27 28 34 42 50 54 53 37 10 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 10 40 44 44 33 29
- X 23 6 4 2 1 0 0 0 0 0 0 0 0 0 2
- X 6 11 30 23 6 6 14 4 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 19 19 18 19 21 21
- X 22 22 22 22 22 22 22 22 22 22 22 19 3 0 0
- X 3 19 22 22 22 22 22 22 22 23 25 29 30 38 47
- X 54 58 48 35 1 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 17 43 56 50 40 35 30 26 24 21 3
- X 1 0 0 0 0 0 0 0 0 0 0 1 4 4 3
- X 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 19 19 19 21 21 21 22 22
- X 22 22 22 22 22 21 18 2 0 0 3 19 22 22 22
- X 22 23 23 24 25 25 29 31 34 42 53 59 54 40 5
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23
- X 49 65 55 48 44 38 37 30 28 23 4 1 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 19 19 18 19 20 20 20 21 21 22 23
- X 22 4 1 0 1 4 23 25 25 25 25 25 25 25 26
- X 27 28 31 36 40 51 57 58 46 8 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 24 52 71 63 55 50
- X 44 43 36 34 27 24 3 1 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 19 19 17 18 19 18 19 20 18 2 0 0 1
- X 18 21 21 21 21 22 24 26 27 28 28 30 32 35 41
- X 52 57 54 40 8 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 25 56 75 68 61 56 51 48 42 40 34
- X 29 22 2 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 1 18 19 20 19 1 0 0 1 19 19 19 20 18
- X 19 23 24 26 29 29 31 32 36 44 51 58 48 35 5
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26
- X 56 79 73 65 61 57 53 49 42 37 31 26 22 1 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 1 2 20 19 23 23 26
- X 27 28 31 39 47 53 52 38 11 1 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 27 59 80 77 72 68
- X 62 59 54 48 43 37 31 24 5 2 1 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 1 3 18 21 21 24 27 31 38 44
- X 47 42 31 5 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 27 61 86 83 76 73 69 62 57 49 43
- X 37 32 26 23 18 3 1 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 1 2 3 20 23 20 25 31 36 35 33 6 1 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 28
- X 63 89 88 84 82 77 71 62 54 45 40 34 28 27 24
- X 18 2 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 1 2 5 9 28 10 5 1 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 29 62 93 93 91 88
- X 84 75 65 56 47 40 36 31 29 24 23 22 1 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
- X 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 28 60 90 91 90 89 85 80 65 55 44
- X 40 35 32 30 27 24 21 21 2 1 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20
- X 54 80 78 79 76 86 79 68 54 43 41 34 34 29 28
- X 26 24 20 17 2 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 2 4 24 23 6 3 1 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 11 45 57 62 52 60
- X 79 68 68 50 43 40 34 33 29 28 27 25 23 20 19
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 1 5 23 28 29
- X 27 24 4 1 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 4 34 44 47 48 47 67 66 67 50 42
- X 38 35 34 28 27 26 26 24 21 21 18 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 1 4 27 32 35 38 35 31 25 3 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4
- X 27 36 40 44 44 59 57 62 48 42 38 35 33 27 27
- X 25 25 24 22 21 19 19 19 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2
- X 21 27 35 42 43 41 37 29 7 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 4 25 34 35 37 39
- X 56 55 59 45 41 41 36 32 30 25 22 22 22 22 22
- X 21 21 19 19 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 3 26 35 41 45 47
- X 46 40 35 25 2 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 6 27 31 36 37 38 48 47 59 45 42
- X 40 37 31 28 25 22 22 22 22 22 22 22 22 19 19
- X 19 19 19 1 1 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 1 5 27 35 42 47 50 47 42 38 29 4
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4
- X 24 33 33 31 27 26 42 50 47 46 41 39 32 29 25
- X 22 22 22 22 22 22 22 22 21 21 21 21 19 19 20
- X 20 3 3 2 1 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 2 21
- X 28 37 44 46 48 48 43 37 29 4 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 3 7 24 24 11 6
- X 10 30 36 41 41 44 39 33 30 25 22 22 22 22 22
- X 22 22 22 22 22 22 23 24 24 23 20 20 18 17 4
- X 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 1 5 26 33 39 43 46 48
- X 45 41 34 24 4 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 3 6 6 3 0 1 5 10 39 44
- X 48 41 34 30 25 22 22 22 22 22 22 22 23 24 25
- X 25 25 23 23 26 27 27 26 25 23 21 4 3 2 1
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 1 2 22 24 27 33 37 43 43 45 42 36 30 7 2
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 1 10 36 42 40 35 30 25
- X 22 22 22 22 23 24 25 26 25 26 28 28 30 31 30
- X 29 29 30 29 27 27 27 24 22 7 6 5 4 3 2
- X 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 2 19 24 26 33
- X 37 38 43 44 42 38 32 26 3 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 5 35 39 40 33 30 24 22 23 24 25 27
- X 26 25 28 30 32 31 32 33 33 35 34 35 34 34 36
- X 35 34 32 31 28 27 27 28 23 18 1 0 0 0 0
- X 0 0 1 3 5 6 5 4 3 3 3 2 1 0 0
- X 0 0 0 1 2 5 23 26 30 33 38 39 43 43 40
- X 36 29 6 1 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 1 12
- X 33 40 33 29 26 25 26 25 27 28 29 31 33 32 35
- X 36 38 39 41 43 43 43 43 44 44 44 44 42 41 40
- X 40 37 34 29 24 2 0 0 0 0 0 1 4 23 24
- X 27 27 30 30 30 28 26 24 7 6 5 5 5 7 24
- X 25 27 29 30 35 36 39 41 41 37 32 25 3 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 7 27 33 32 28 29
- X 30 31 31 32 33 35 36 39 39 42 43 46 48 49 51
- X 51 52 50 50 50 50 50 50 50 50 49 47 41 33 23
- X 2 0 0 0 0 0 3 25 31 37 41 41 38 38 37
- X 35 38 34 33 31 29 31 28 30 29 29 29 30 33 36
- X 35 39 38 38 34 27 6 1 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 3 9 31 31 30 32 32 33 35 36 38
- X 40 43 45 46 49 52 53 53 53 54 54 54 54 54 54
- X 54 54 54 54 54 54 51 44 34 24 2 0 0 0 0
- X 1 7 31 40 46 48 49 50 50 49 49 48 48 49 47
- X 46 44 41 37 34 30 32 32 32 33 34 34 34 33 29
- X 24 3 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4
- X 25 29 33 36 36 37 39 43 44 45 48 51 52 53 54
- X 55 56 57 58 58 57 57 57 58 59 59 59 59 58 57
- X 56 51 43 31 7 1 0 0 0 0 3 28 36 46 51
- X 53 53 53 54 56 57 59 61 61 64 60 54 46 39 33
- X 32 29 28 27 28 30 31 29 29 22 4 1 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 3 6 25 27 28 31 36 40 43 44
- X 45 48 50 52 54 55 55 55 57 58 59 59 58 58 57
- X 56 56 55 53 53 53 53 53 53 54 53 47 39 29 5
- X 0 0 0 0 0 5 28 38 49 53 55 54 56 58 60
- X 62 68 72 72 71 64 55 45 35 32 28 27 27 24 24
- X 24 23 24 5 2 1 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 5 27 35 38 40 45 47 50 51 52 53 56 57 56 57
- X 57 58 59 59 57 56 56 54 53 54 53 53 52 51 50
- X 50 50 50 51 49 46 41 32 24 2 0 0 0 0 1
- X 7 32 41 47 50 51 52 54 59 62 66 72 76 75 72
- X 60 48 37 29 24 23 22 20 4 3 3 3 2 1 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 1 11 37 47 50 53
- X 57 58 62 63 63 63 62 63 63 61 60 58 57 57 54
- X 53 53 50 49 47 46 47 46 46 46 46 46 46 43 40
- X 33 29 25 4 1 0 0 0 0 2 25 30 37 45 46
- X 47 51 51 57 61 67 72 75 68 58 44 35 26 22 22
- X 3 3 2 1 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 1 2 19 30 42 56 61 64 65 69 71 69 71
- X 70 67 65 61 62 58 56 54 52 49 47 44 43 41 38
- X 37 38 39 40 40 40 40 39 36 32 26 7 3 1 0
- X 0 0 0 1 5 27 34 38 39 42 43 47 50 56 60
- X 64 66 60 51 43 32 25 4 2 1 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 2 17 21
- X 37 48 62 66 69 73 72 75 75 75 73 70 70 64 61
- X 58 53 50 45 43 39 37 36 35 34 33 32 31 31 31
- X 31 31 31 29 25 5 1 0 0 0 0 0 0 2 21
- X 26 28 31 33 38 42 47 51 56 60 60 56 46 37 25
- X 5 2 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 3 19 23 38 50 68 71 72
- X 71 75 78 79 79 75 72 67 64 61 56 52 46 42 40
- X 36 33 31 30 31 27 29 28 28 28 28 28 28 25 21
- X 3 0 0 0 0 0 0 1 22 22 27 29 32 37 38
- X 44 48 55 57 59 56 49 35 9 2 1 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 3 20 25 36 45 58 65 74 76 77 75 73 75
- X 74 73 70 65 60 56 50 46 41 38 34 31 29 28 27
- X 26 26 25 25 25 25 25 24 21 17 2 0 0 0 0
- X 0 0 2 20 22 28 30 33 36 43 48 52 58 57 56
- X 50 39 27 4 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 3 22 26
- X 31 40 53 55 59 63 68 74 77 77 72 69 66 65 61
- X 58 53 48 43 41 35 34 31 29 28 27 26 25 25 25
- X 25 25 22 21 3 1 0 0 0 0 0 0 3 20 23
- X 28 32 37 42 49 54 57 60 57 52 40 31 7 2 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 3 22 25 29 33 38 45 51
- X 57 56 60 62 64 69 66 64 62 60 59 54 53 46 45
- X 39 37 34 32 31 31 31 31 31 31 30 28 24 18 1
- X 0 0 0 0 0 0 1 5 23 26 32 36 42 50 56
- X 59 61 59 53 42 32 7 2 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 3 18 26 27 31 33 34 36 41 45 50 55 57
- X 58 61 62 65 64 63 56 57 51 52 44 44 40 39 37
- X 34 34 34 34 34 33 30 24 19 1 0 0 0 0 0
- X 0 3 23 28 33 39 43 50 55 59 61 59 52 40 33
- X 8 2 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 2 15 21
- X 25 26 30 30 31 32 33 34 37 44 48 49 49 53 56
- X 64 58 61 55 57 53 51 48 46 45 42 42 41 41 41
- X 39 35 27 22 1 0 0 0 0 0 2 25 31 38 42
- X 47 51 55 57 57 54 48 42 31 9 3 1 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 1 2 3 22 21 25 26 30
- X 32 32 34 34 36 40 42 44 48 47 55 53 63 58 58
- X 57 55 54 53 52 50 51 52 52 51 46 40 31 21 1
- X 0 0 0 0 2 7 31 37 47 52 56 58 60 54 51
- X 43 38 29 7 4 17 18 19 18 17 18 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 1 2 5 20 24 25 25 28 30 32
- X 33 34 34 37 39 46 46 54 52 60 59 58 57 55 55
- X 54 52 52 52 51 49 41 30 7 1 0 0 0 0 5
- X 25 41 50 57 60 62 59 57 47 40 34 26 23 22 21
- X 21 21 20 20 18 17 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 1 2 3 5 21 25 28 29 32 32 34 35 34
- X 37 37 45 44 50 49 59 61 62 59 55 56 56 56 54
- X 49 41 28 5 0 0 0 0 0 8 31 45 55 61 61
- X 62 57 47 39 30 25 23 22 21 21 22 22 21 19 17
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 1 2 4 20 24 26 30 31 33 33 35 32 34 36 41
- X 40 45 46 49 53 49 50 51 51 51 45 38 28 3 0
- X 0 0 0 2 11 35 48 58 61 60 55 47 40 33 28
- X 24 22 22 24 24 24 21 19 16 1 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 1 2 5
- X 23 25 30 31 32 34 33 31 29 29 31 35 41 41 40
- X 38 34 35 35 35 35 28 7 1 0 0 0 1 4 24
- X 34 44 51 52 48 46 40 33 27 24 24 25 23 23 21
- X 21 17 20 2 1 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 1 4 22 25 27 28
- X 29 30 31 30 28 26 24 25 26 29 29 30 31 31 30
- X 29 25 22 19 20 21 22 22 23 26 33 38 43 43 42
- X 39 35 33 31 29 28 27 22 21 17 21 2 1 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 1 3 20 22 25 28 30 30 30 29
- X 27 25 24 23 22 21 21 21 22 22 22 22 20 19 19
- X 20 22 23 26 29 32 34 36 37 36 35 32 32 31 30
- X 28 27 21 5 2 1 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 1 2 3 23 23 23 27 27 29 28 27 26 25 24
- X 23 22 22 22 22 22 22 22 23 24 25 27 29 31 30
- X 32 34 36 36 37 37 38 36 35 34 30 25 22 3 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
- X 4 20 24 25 27 29 29 28 26 26 25 24 23 22 22
- X 22 22 23 23 24 26 28 30 32 34 35 37 39 40 42
- X 40 38 37 36 33 32 25 21 3 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 1 2 22 22 26
- X 29 30 29 28 28 26 25 24 24 23 23 23 25 26 28
- X 29 30 33 35 36 38 39 40 40 41 41 41 39 37 31
- X 32 25 21 3 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 2 23 25 28 30 31 30 29
- X 28 27 27 26 25 25 24 25 27 28 31 32 34 35 38
- X 40 39 40 40 40 40 39 38 36 31 29 25 19 2 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 2 22 23 30 29 33 32 31 30 29 28 27 27
- X 27 29 28 29 29 31 33 35 36 37 39 40 41 41 40
- X 39 37 35 32 31 26 21 3 1 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 1 19 22
- X 28 29 32 33 33 32 31 32 30 30 29 29 29 30 31
- X 32 34 35 36 34 35 34 35 33 35 33 33 31 29 26
- X 21 20 1 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 1 4 21 28 30 32 34 34
- X 34 33 32 31 32 33 32 33 33 32 33 34 34 34 35
- X 36 35 34 33 32 31 28 27 22 23 2 1 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 3 20 26 28 32 32 36 36 35 34 33 33
- X 32 31 32 33 34 35 34 32 31 30 28 27 26 26 27
- X 25 21 23 2 1 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 2 18
- X 23 25 31 32 36 37 36 36 35 36 37 36 35 35 36
- X 36 33 30 29 28 25 23 23 22 22 3 2 1 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 1 3 21 26 29 33 35
- X 37 38 38 38 37 36 37 38 37 36 35 32 30 27 21
- X 4 3 3 2 1 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 1 3 22 26 30 34 35 37 38 39 39
- X 40 40 39 38 36 34 32 28 24 4 1 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 1 4 24 27 31 34 33 35 36 35 36 36 35 36 34
- X 31 30 26 20 2 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 2 20 26 28
- X 30 31 33 34 34 35 35 33 32 32 30 26 24 21 1
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- X 0 0 0 0 0 0 0 0 0 0))
- END_OF_FILE
- if test 40677 -ne `wc -c <'./example/globe.in'`; then
- echo shar: \"'./example/globe.in'\" unpacked with wrong size!
- fi
- # end of './example/globe.in'
- fi
- if test ! -d './src' ; then
- echo shar: Creating directory \"'./src'\"
- mkdir './src'
- fi
- if test -f './src/Makefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'./src/Makefile'\"
- else
- echo shar: Extracting \"'./src/Makefile'\" \(1309 characters\)
- sed "s/^X//" >'./src/Makefile' <<'END_OF_FILE'
- XLIBS = -lm -lXaw -lXt -lXmu -lX11 -lXext
- XFLAGS =
- XCOBJ = clim.o heat.o pressure.o wind.o rain.o climate.o fileio.o
- XTOBJ = tec1.o tec2.o tec3.o fileio.o
- XGOBJ = globe.o fileio.o
- XGRAF = x
- X
- X# Change GRAF from x to unix to produce text-only versions
- X
- Xall: clim tec globe
- X
- Xclim: $(COBJ) $(GRAF).o; cc $(FLAGS) -o clim $(COBJ) $(GRAF).o $(LIBS)
- Xtec: $(TOBJ) $(GRAF).o; cc $(FLAGS) -o tec $(TOBJ) $(GRAF).o $(LIBS)
- Xglobe: $(GOBJ) $(GRAF).o; cc $(FLAGS) -o globe $(GOBJ) $(GRAF).o $(LIBS)
- X
- Xtec1.o: tec1.c const.h tec.h; cc $(FLAGS) -c tec1.c
- Xtec2.o: tec2.c const.h tec.h; cc $(FLAGS) -c tec2.c
- Xtec3.o: tec3.c const.h tec.h; cc $(FLAGS) -c tec3.c
- X
- Xglobe.o: globe.c const.h; cc $(FLAGS) -c globe.c
- X
- Xclim.o: clim.c const.h clim.h; cc $(FLAGS) -c clim.c
- Xheat.o: heat.c const.h clim.h; cc $(FLAGS) -c heat.c
- Xpressure.o: pressure.c const.h clim.h; cc $(FLAGS) -c pressure.c
- Xwind.o: wind.c const.h clim.h; cc $(FLAGS) -c wind.c
- Xrain.o: rain.c const.h clim.h; cc $(FLAGS) -c rain.c
- Xclimate.o: climate.c const.h clim.h; cc $(FLAGS) -c climate.c
- X
- Xfileio.o: fileio.c const.h clim.h; cc $(FLAGS) -c fileio.c
- Xunix.o: unix.c const.h; cc $(FLAGS) -c unix.c
- Xx.o: x.c const.h clim.h; cc $(FLAGS) -c x.c
- END_OF_FILE
- if test 1309 -ne `wc -c <'./src/Makefile'`; then
- echo shar: \"'./src/Makefile'\" unpacked with wrong size!
- fi
- # end of './src/Makefile'
- fi
- if test -f './src/rain.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'./src/rain.c'\"
- else
- echo shar: Extracting \"'./src/rain.c'\" \(7151 characters\)
- sed "s/^X//" >'./src/rain.c' <<'END_OF_FILE'
- X/* This program is Copyright (c) 1991 David Allen. It may be freely
- X distributed as long as you leave my name and copyright notice on it.
- X I'd really like your comments and feedback; send e-mail to
- X allen@viewlogic.com, or send us-mail to David Allen, 10 O'Moore
- X Avenue, Maynard, MA 01754. */
- X
- X/* This file contains the routines to compute rainfall. */
- X
- X#include "const.h"
- X#include "clim.h"
- X
- X/* The input data arrays are l and lm, from main.c, wd, from wind.c,
- X and pr, from pressure.c. Output arrays are rm and rn; fr and fs are
- X used as temporary storage. */
- X
- Xextern unsigned char l[MAXX][MAXY], lm[MAXX][MAXY], wd[MAXB][MAXX][MAXY];
- Xextern unsigned char pr[MAXB][MAXX][MAXY];
- Xunsigned char rn[MAXB][MAXX][MAXY];
- Xstatic unsigned char fr[2][MAXX][MAXY], fs[MAXX][MAXY];
- X
- X
- X/* The externs below are parameters defined in main.c; the ints are
- X parameters defined here. */
- X
- Xextern int BSIZE, XSIZE, YSIZE;
- Xint MAXFETCH = 5, RAINCONST = 32, LANDEL = 10, MOUNTDEL = 32, FETCHDEL = 4;
- Xint NRFDEL = 3, HEQDEL = 32, NRHEQDEL = 24, FLANKDEL = -24, PRINTRAIN = 0;
- X
- X
- Xrainpar (s) char *s; {
- X /* This function is called by mainpar() in main.c; it simply tests input
- X parameter names to see if they are defined in this file. Each of the
- X above ints are defined in this file. If the input string matches here,
- X the function returns true. */
- X
- X if (CMP ("MAXFETCH")) getlng (&MAXFETCH, M_RAIN);
- X else if (CMP ("RAINCONST")) getlng (&RAINCONST, M_RAIN);
- X else if (CMP ("LANDEL")) getlng (&LANDEL, M_RAIN);
- X else if (CMP ("MOUNTDEL")) getlng (&MOUNTDEL, M_RAIN);
- X else if (CMP ("FETCHDEL")) getlng (&FETCHDEL, M_RAIN);
- X else if (CMP ("HEQDEL")) getlng (&HEQDEL, M_RAIN);
- X else if (CMP ("NRHEQDEL")) getlng (&NRHEQDEL, M_RAIN);
- X else if (CMP ("FLANKDEL")) getlng (&FLANKDEL, M_RAIN);
- X else if (CMP ("NRFDEL")) getlng (&NRFDEL, M_RAIN);
- X else if (CMP ("PRINTRAIN")) getlng (&PRINTRAIN, M_RAIN);
- X else return (0);
- X return (1); }
- X
- X
- Xraincomp () {
- X /* This is the main rain computation function. It calls the functions
- X getfetch () and getrain () to do all the work for each buffer, then
- X prints out the results if needed. */
- X
- X register int buf;
- X
- X for (buf=0; buf<BSIZE; buf++) {
- X status (M_RAIN, buf); checkmouse ();
- X getfetch (buf); checkmouse (); getrain (buf); }
- X
- X if (PRINTRAIN) for (buf=0; buf<BSIZE; buf++)
- X putmat ("RAIN", buf, PRINTMODE_SCALE, rn[buf], lm); }
- X
- X
- Xraindraw (n) int n; { draw (DRAW_GREY, LINE_CORN, rn[n], lm); }
- X /* This function calls draw with the right arguments to display rain */
- X
- X
- Xfetchinc (x, y, dest) int x, y, dest; {
- X /* This is the workhorse function for getfetch(), below. It is called
- X several times per square. It changes x to account for wraparound, so it
- X won't work as a macro. If y is out of range it does nothing, else it
- X "marks" the new square in fr[dest] and increments fs to record the number
- X of times the square has been marked. */
- X
- X if (x == -1) x = XSIZE-1; else if (x == XSIZE) x = 0;
- X if ((y == -1) || (y == YSIZE)) return (0);
- X fr[dest][x][y] = 1; fs[x][y]++; return (0); }
- X
- X
- Xgetfetch (buf) int buf; {
- X /* "Fetch" is the term that describes how many squares a given wind line
- X travels over water. It measures how moist the wind is. The algorithm to
- X measure fetch looks like many simultaneous tree walks, where each water
- X square is a root square, and every wind edge is a tree edge. A counter
- X for each square determines how many times that square is reached during
- X the tree walks; that is the fetch. */
- X
- X register int i, j, k; int src, dest;
- X
- X /* Initialize the counter fs to zero. Array fr, which records the */
- X /* list of active edges in the walks, is set so that all ocean squares */
- X /* are active. Also, the result array rn is cleared. */
- X for (i=0; i<XSIZE; i++) for (j=0; j<YSIZE; j++) {
- X fr[0][i][j] = l[i][j] ? 0 : 1; fs[i][j] = 0; rn[buf][i][j] = 0; }
- X
- X /* Each time through the loop, each square is examined. If it's */
- X /* active, disable the mark in the current time step (thus ensuring */
- X /* that when the buffers are flipped, the new destination is empty). */
- X /* If the square is a mountain, don't pass the mark, but instead add */
- X /* some amount to the square -- implementing rain shadows and rainy */
- X /* mountain squares. Finally, for each of the eight cardinal */
- X /* directions, if there is wind blowing in that direction, carry a */
- X /* marker to that square using fetchinc(), above. */
- X
- X for (k=0; k<MAXFETCH; k++) {
- X src = k % 2; dest = 1 - src;
- X for (i=0; i<XSIZE; i++) for (j=0; j<YSIZE; j++) if (fr[src][i][j]) {
- X fr[src][i][j] = 0;
- X if (l[i][j] == 2) rn[buf][i][j] += MOUNTDEL;
- X else switch (wd[buf][i][j]) {
- X case N|E: fetchinc (i+1, j-1, dest); break;
- X case N|W: fetchinc (i-1, j-1, dest); break;
- X case S|E: fetchinc (i+1, j+1, dest); break;
- X case S|W: fetchinc (i-1, j+1, dest); break;
- X case N: fetchinc (i, j-1, dest); break;
- X case S: fetchinc (i, j+1, dest); break;
- X case E: fetchinc (i+1, j, dest); break;
- X case W: fetchinc (i-1, j, dest); break; } } } }
- X
- X
- X/* This macro is called several times per square by getrain(), below. It
- X simply tests the square for several conditions: if the square is on the
- X heat equator, itcz is set to one; if the wind blows south in this square,
- X it is on the flank of a circular wind zone (and thus less rainy); the local
- X rain sum, x, is increased according to the fetch sum in the square. */
- X#define RAINTEST(xx,yy) \
- X if (pr[buf][xx][yy] == PR_HEQ) itcz = 1; \
- X if (wd[buf][xx][yy] & S) flank = 1; \
- X x += (fs[xx][yy] * NRFDEL);
- X
- X
- Xgetrain (buf) int buf; {
- X /* Once the fetch array is computed, this function looks at each square to
- X determine the amount of rainfall there. The above macro is called five
- X times, once for the square and each of its four neighbors; this determines
- X whether the square is near the ITCZ or the flank of an air cycle. The
- X sum of fetches for the neighbors is also determined. Finally, each of the
- X factors is weighted and added to the rainfall value: the local fetch value,
- X a land factor, the nearness of the heat equator, and the nearness of a
- X flank. Note that while rn is zeroed in getfetch(), it may be increased by
- X rain falling on mountains, so it is nonzero when this function is called. */
- X
- X register int i, j, x; int itcz, flank;
- X
- X for (i=0; i<XSIZE; i++) for (j=0; j<YSIZE; j++) {
- X flank = 0; itcz = 0; x = rn[buf][i][j];
- X if (i < XSIZE-1) { RAINTEST (i+1, j) } else { RAINTEST (0, j) }
- X if (i) { RAINTEST (i-1, j) } else { RAINTEST (XSIZE-1, j) }
- X if (j < YSIZE-1) { RAINTEST (i, j+1) }
- X if (j) { RAINTEST (i, j-1) }
- X RAINTEST (i, j);
- X
- X x += (RAINCONST + FETCHDEL * fs[i][j]);
- X if (l[i][j]) x += LANDEL;
- X if (pr[buf][i][j] == PR_HEQ) x += HEQDEL;
- X if (itcz) x += NRHEQDEL;
- X if (flank) x += FLANKDEL;
- X if (x < 0) x = 0; if (x> 255) x = 255;
- X rn[buf][i][j] = x; } }
- END_OF_FILE
- if test 7151 -ne `wc -c <'./src/rain.c'`; then
- echo shar: \"'./src/rain.c'\" unpacked with wrong size!
- fi
- # end of './src/rain.c'
- fi
- echo shar: End of archive 1 \(of 4\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 2 3 4 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 4 archives.
- rm -f ark[1-9]isdone
- else
- echo You still must unpack the following archives:
- echo " " ${MISSING}
- fi
- exit 0
- exit 0 # Just in case...
- --
- Kent Landfield INTERNET: kent@sparky.IMD.Sterling.COM
- Sterling Software, IMD UUCP: uunet!sparky!kent
- Phone: (402) 291-8300 FAX: (402) 291-4362
- Please send comp.sources.misc-related mail to kent@uunet.uu.net.
-